gtk4.git
15 years agoGtkCssProvider: free selector path on parse_rule().
Carlos Garnacho [Tue, 20 Apr 2010 23:51:46 +0000 (01:51 +0200)]
GtkCssProvider: free selector path on parse_rule().

15 years agoGtkCssProvider: Add named regions to selector path.
Carlos Garnacho [Tue, 20 Apr 2010 23:48:01 +0000 (01:48 +0200)]
GtkCssProvider: Add named regions to selector path.

15 years agoGtkCssProvider: Parse named regions.
Carlos Garnacho [Tue, 20 Apr 2010 23:46:52 +0000 (01:46 +0200)]
GtkCssProvider: Parse named regions.

15 years agoGtkWidgetPath: Add API for named regions.
Carlos Garnacho [Tue, 20 Apr 2010 23:35:54 +0000 (01:35 +0200)]
GtkWidgetPath: Add API for named regions.

15 years agoRefurbish GtkWidgetPath API.
Carlos Garnacho [Tue, 20 Apr 2010 23:27:46 +0000 (01:27 +0200)]
Refurbish GtkWidgetPath API.

The foreach() function is now gone, there's now API to get
GTypes and names from the position in the path.

15 years agoMove GtkChildClassFlags to gtkenums.h.
Carlos Garnacho [Tue, 20 Apr 2010 22:32:21 +0000 (00:32 +0200)]
Move GtkChildClassFlags to gtkenums.h.

15 years agoGtkCssProvider: Add support for child/descendant combinators.
Carlos Garnacho [Fri, 16 Apr 2010 01:02:42 +0000 (03:02 +0200)]
GtkCssProvider: Add support for child/descendant combinators.

Now, selectors like:

  GtkWindow > GtkButton {}
  GtkNotebook > GtkLabel {}

will represent a direct parent/child relation between both elements, while

  GtkWindow GtkButton {}
  GtkNotebook GtkLabel {}

will allow intermediate children between these.

15 years agoGtkCssProvider: Fix typo freeing SelectorElements.
Carlos Garnacho [Fri, 16 Apr 2010 00:59:36 +0000 (02:59 +0200)]
GtkCssProvider: Fix typo freeing SelectorElements.

15 years agoGtkCssProvider: Allow empty selector.
Carlos Garnacho [Thu, 15 Apr 2010 23:44:50 +0000 (01:44 +0200)]
GtkCssProvider: Allow empty selector.

universal selector is implied, so things like this work:

:active {}
:insensitive{}

15 years agoGtkCssProvider: Allow '*' selectors.
Carlos Garnacho [Thu, 15 Apr 2010 22:29:11 +0000 (00:29 +0200)]
GtkCssProvider: Allow '*' selectors.

These would match a single widget of any type.

15 years agoGtkCssProvider: Add state parsing.
Carlos Garnacho [Wed, 14 Apr 2010 21:36:48 +0000 (23:36 +0200)]
GtkCssProvider: Add state parsing.

Now state is now defined as a pseudoclass in the CSS format, selectors like:

GtkWidget:active { }
GtkButton:insensitive { }
GtkCalendar:prelight { } (also :hover is accepted)
...

define the style for the given state.

15 years agoGtkWidget: Create GtkCssProvider for user modifications.
Carlos Garnacho [Sun, 11 Apr 2010 21:30:49 +0000 (23:30 +0200)]
GtkWidget: Create GtkCssProvider for user modifications.

~/.gtk-X.0.css is checked, and added as a style resource if available.

15 years agoGtkStyleProvider: Add defines for most common priorities.
Carlos Garnacho [Sun, 11 Apr 2010 21:30:07 +0000 (23:30 +0200)]
GtkStyleProvider: Add defines for most common priorities.

15 years agoAdded GtkCssProvider.
Carlos Garnacho [Sun, 11 Apr 2010 21:03:25 +0000 (23:03 +0200)]
Added GtkCssProvider.

GtkCssProvider is a GtkStyleProvider implementation which is able to read
CSS-like input to style widgets.

At the moment, only the basic parser features are available.

15 years agoAdd GtkWidgetPath parameter to gtk_style_provider_get_style().
Carlos Garnacho [Sun, 11 Apr 2010 18:30:24 +0000 (20:30 +0200)]
Add GtkWidgetPath parameter to gtk_style_provider_get_style().

15 years agoGtkStyleSet: Add method to lookup property default settings.
Carlos Garnacho [Sun, 11 Apr 2010 18:26:49 +0000 (20:26 +0200)]
GtkStyleSet: Add method to lookup property default settings.

15 years agoGtkStyleSet: Make property registration take const GValues.
Carlos Garnacho [Sun, 11 Apr 2010 17:52:58 +0000 (19:52 +0200)]
GtkStyleSet: Make property registration take const GValues.

15 years agoGtkStyleContext: allow late set_path() calls.
Carlos Garnacho [Sun, 11 Apr 2010 17:46:57 +0000 (19:46 +0200)]
GtkStyleContext: allow late set_path() calls.

Now the properties will only be regenerated whenever there's a GtkWidgetPath
to query about.

15 years agoGtkStyleContext: Fix compiler warning.
Carlos Garnacho [Sat, 27 Mar 2010 20:30:30 +0000 (21:30 +0100)]
GtkStyleContext: Fix compiler warning.

15 years agoGtkStyleContext: Fix typo.
Carlos Garnacho [Sat, 27 Mar 2010 20:29:55 +0000 (21:29 +0100)]
GtkStyleContext: Fix typo.

15 years agoGtkStyleContext: Add gtk_render_handle().
Carlos Garnacho [Sat, 27 Mar 2010 20:28:44 +0000 (21:28 +0100)]
GtkStyleContext: Add gtk_render_handle().

15 years agoGtkThemingEngine: Add vmethod to render a handle area.
Carlos Garnacho [Sat, 27 Mar 2010 20:27:52 +0000 (21:27 +0100)]
GtkThemingEngine: Add vmethod to render a handle area.

15 years agoGtkStyleContext: Add gtk_render_extension().
Carlos Garnacho [Sat, 27 Mar 2010 20:26:27 +0000 (21:26 +0100)]
GtkStyleContext: Add gtk_render_extension().

15 years agoGtkThemingEngine: Add vmethod to render an extension.
Carlos Garnacho [Sat, 27 Mar 2010 20:25:33 +0000 (21:25 +0100)]
GtkThemingEngine: Add vmethod to render an extension.

15 years agoGtkStyleContext: Add gtk_render_frame_gap().
Carlos Garnacho [Sat, 27 Mar 2010 20:24:22 +0000 (21:24 +0100)]
GtkStyleContext: Add gtk_render_frame_gap().

15 years agoGtkThemingEngine: Add vmethod to render frames with a gap.
Carlos Garnacho [Sat, 27 Mar 2010 20:23:13 +0000 (21:23 +0100)]
GtkThemingEngine: Add vmethod to render frames with a gap.

15 years agoGtkStyleContext: Add gtk_render_slider().
Carlos Garnacho [Sat, 27 Mar 2010 20:21:34 +0000 (21:21 +0100)]
GtkStyleContext: Add gtk_render_slider().

15 years agoGtkThemingEngine: Add vmethod to render sliders.
Carlos Garnacho [Sat, 27 Mar 2010 20:20:21 +0000 (21:20 +0100)]
GtkThemingEngine: Add vmethod to render sliders.

15 years agoGtkStyleContext: Add gtk_render_line().
Carlos Garnacho [Sat, 27 Mar 2010 20:18:24 +0000 (21:18 +0100)]
GtkStyleContext: Add gtk_render_line().

15 years agoGtkThemingEngine: Add vmethod to render lines.
Carlos Garnacho [Sat, 27 Mar 2010 20:17:22 +0000 (21:17 +0100)]
GtkThemingEngine: Add vmethod to render lines.

15 years agoGtkStyleContext: Add gtk_render_layout().
Carlos Garnacho [Sat, 27 Mar 2010 19:22:44 +0000 (20:22 +0100)]
GtkStyleContext: Add gtk_render_layout().

15 years agoGtkThemingEngine: Add vmethod to render layouts.
Carlos Garnacho [Sat, 27 Mar 2010 19:21:55 +0000 (20:21 +0100)]
GtkThemingEngine: Add vmethod to render layouts.

15 years agoGtkStyleContext: Add gtk_render_focus().
Carlos Garnacho [Sat, 27 Mar 2010 19:19:53 +0000 (20:19 +0100)]
GtkStyleContext: Add gtk_render_focus().

15 years agoGtkThemingEngine: Add vmethod to render focus indicator.
Carlos Garnacho [Sat, 27 Mar 2010 19:18:38 +0000 (20:18 +0100)]
GtkThemingEngine: Add vmethod to render focus indicator.

15 years agoGtkStyleContext: Add gtk_render_expander().
Carlos Garnacho [Sat, 27 Mar 2010 19:16:44 +0000 (20:16 +0100)]
GtkStyleContext: Add gtk_render_expander().

15 years agoGtkThemingEngine: Add vmethod to render expanders.
Carlos Garnacho [Sat, 27 Mar 2010 19:15:45 +0000 (20:15 +0100)]
GtkThemingEngine: Add vmethod to render expanders.

15 years agoGtkStyleContext: Add gtk_render_frame().
Carlos Garnacho [Sat, 27 Mar 2010 19:12:46 +0000 (20:12 +0100)]
GtkStyleContext: Add gtk_render_frame().

15 years agoGtkThemingEngine: Add vmethod to render frames.
Carlos Garnacho [Sat, 27 Mar 2010 19:11:31 +0000 (20:11 +0100)]
GtkThemingEngine: Add vmethod to render frames.

15 years agoGtkStyleContext: Add gtk_render_background().
Carlos Garnacho [Sat, 27 Mar 2010 19:08:23 +0000 (20:08 +0100)]
GtkStyleContext: Add gtk_render_background().

15 years agoGtkThemingEngine: Add vmethod to render backgrounds.
Carlos Garnacho [Sat, 27 Mar 2010 19:06:44 +0000 (20:06 +0100)]
GtkThemingEngine: Add vmethod to render backgrounds.

15 years agoGtkStyleContext: Add gtk_render_arrow().
Carlos Garnacho [Sat, 27 Mar 2010 18:57:54 +0000 (19:57 +0100)]
GtkStyleContext: Add gtk_render_arrow().

15 years agoGtkThemingEngine: Add vmethod to render arrows.
Carlos Garnacho [Sat, 27 Mar 2010 17:50:39 +0000 (18:50 +0100)]
GtkThemingEngine: Add vmethod to render arrows.

15 years agoGtkStyleContext: Add gtk_render_option().
Carlos Garnacho [Sat, 20 Mar 2010 16:40:21 +0000 (17:40 +0100)]
GtkStyleContext: Add gtk_render_option().

15 years agoGtkThemingEngine: Add vmethod to render radio buttons.
Carlos Garnacho [Sat, 20 Mar 2010 16:37:34 +0000 (17:37 +0100)]
GtkThemingEngine: Add vmethod to render radio buttons.

15 years agoGtkStyleContext: Add gtk_render_check().
Carlos Garnacho [Sat, 20 Mar 2010 13:26:11 +0000 (14:26 +0100)]
GtkStyleContext: Add gtk_render_check().

15 years agoGtkThemingEngine: Add vmethod to render checkboxes.
Carlos Garnacho [Sat, 20 Mar 2010 13:17:40 +0000 (14:17 +0100)]
GtkThemingEngine: Add vmethod to render checkboxes.

15 years agoGtkThemingEngine: Add accessors to style classes.
Carlos Garnacho [Sat, 20 Mar 2010 13:13:50 +0000 (14:13 +0100)]
GtkThemingEngine: Add accessors to style classes.

15 years agoGtkWidget: Add widget path to style context.
Carlos Garnacho [Sat, 20 Mar 2010 12:30:05 +0000 (13:30 +0100)]
GtkWidget: Add widget path to style context.

15 years agoGtkStyleContext: Add child style classes.
Carlos Garnacho [Sat, 20 Mar 2010 12:07:41 +0000 (13:07 +0100)]
GtkStyleContext: Add child style classes.

Child style classes are like style classes, but with additional positional
information. This would be usually set by the parent container.

15 years agoGtkStyleContext: Add style classes.
Carlos Garnacho [Sat, 20 Mar 2010 12:02:20 +0000 (13:02 +0100)]
GtkStyleContext: Add style classes.

Style classes are the replacement of detail strings.

15 years agoGtkStyleContext: Relate to a GtkThemingEngine.
Carlos Garnacho [Sat, 13 Mar 2010 19:08:06 +0000 (20:08 +0100)]
GtkStyleContext: Relate to a GtkThemingEngine.

15 years agoGtkThemingEngine: Add module loading capabilities.
Carlos Garnacho [Sat, 13 Mar 2010 17:35:35 +0000 (18:35 +0100)]
GtkThemingEngine: Add module loading capabilities.

15 years agoAdd GtkThemingEngine.
Carlos Garnacho [Sat, 13 Mar 2010 10:23:23 +0000 (11:23 +0100)]
Add GtkThemingEngine.

GtkThemingEngine will be the theming engines base class, with default
implementations for all paint functions, and readonly access to the
related GtkStyleContext data.

15 years agoGtkStyleContext: Add gtk_style_context_[gs]et_path()
Carlos Garnacho [Sat, 13 Mar 2010 10:15:42 +0000 (11:15 +0100)]
GtkStyleContext: Add gtk_style_context_[gs]et_path()

This relates a GtkStyleContext with a widget path, so
all style querying would happen based on it.

15 years agoGtkWidget: Add gtk_widget_get_path().
Carlos Garnacho [Fri, 12 Mar 2010 18:02:33 +0000 (19:02 +0100)]
GtkWidget: Add gtk_widget_get_path().

This function composes and returns a GtkWidgetPath representing
the passed widget.

15 years agoAdd GtkWidgetPath.
Carlos Garnacho [Fri, 12 Mar 2010 17:55:54 +0000 (18:55 +0100)]
Add GtkWidgetPath.

GtkWidgetPath represents a widget path. It will mainly used by theming
engines to know detail about the widget hierarchy without actually
accessing the widget.

15 years agoGtkStyleContext: Add getters and setter for state.
Carlos Garnacho [Wed, 10 Mar 2010 00:02:46 +0000 (01:02 +0100)]
GtkStyleContext: Add getters and setter for state.

15 years agoGtkWidget: Add gtk_widget_get_style_context().
Carlos Garnacho [Tue, 9 Mar 2010 23:55:48 +0000 (00:55 +0100)]
GtkWidget: Add gtk_widget_get_style_context().

There will be one GtkStyleContext per widget, at the moment its
lifetime is tied to the widget's, but it could be narrowed down
to GTK_WIDGET_REALIZED.

15 years agoAdd GtkStateFlags.
Carlos Garnacho [Tue, 9 Mar 2010 23:52:57 +0000 (00:52 +0100)]
Add GtkStateFlags.

It basically represents GtkStateType as a flag set.

15 years agoGtkStateType: Add inconsistent and focused state.
Carlos Garnacho [Tue, 9 Mar 2010 23:28:18 +0000 (00:28 +0100)]
GtkStateType: Add inconsistent and focused state.

15 years agoGtkStyleContext: Fix typo.
Carlos Garnacho [Sun, 7 Mar 2010 18:58:35 +0000 (19:58 +0100)]
GtkStyleContext: Fix typo.

15 years agoGtkStyleSet: Add method to register border property.
Carlos Garnacho [Sun, 7 Mar 2010 18:57:53 +0000 (19:57 +0100)]
GtkStyleSet: Add method to register border property.

15 years agoGtkStyleSet: Add method to register font properties.
Carlos Garnacho [Sun, 7 Mar 2010 18:07:27 +0000 (19:07 +0100)]
GtkStyleSet: Add method to register font properties.

15 years agoGtkStyleContext: Add methods to query composed style.
Carlos Garnacho [Sun, 7 Mar 2010 00:22:38 +0000 (01:22 +0100)]
GtkStyleContext: Add methods to query composed style.

15 years agoGtkStyleSet: Return default value if value is not set.
Carlos Garnacho [Sat, 6 Mar 2010 18:52:18 +0000 (19:52 +0100)]
GtkStyleSet: Return default value if value is not set.

15 years agoGtkStyleSet: Add valist and varargs getters/setters.
Carlos Garnacho [Fri, 5 Mar 2010 02:02:59 +0000 (03:02 +0100)]
GtkStyleSet: Add valist and varargs getters/setters.

15 years agoGtkStyleSet: Use property GQuark as store keys.
Carlos Garnacho [Fri, 5 Mar 2010 01:06:53 +0000 (02:06 +0100)]
GtkStyleSet: Use property GQuark as store keys.

15 years agoGtkStyleSet: Add style property registration funcs.
Carlos Garnacho [Fri, 5 Mar 2010 00:45:47 +0000 (01:45 +0100)]
GtkStyleSet: Add style property registration funcs.

Also some properties have been added as a default set.

15 years agoAdd GtkStyleContext.
Carlos Garnacho [Thu, 4 Mar 2010 22:00:30 +0000 (23:00 +0100)]
Add GtkStyleContext.

GtkStyleContext will conglomerate the information of several
GtkStyleProviders for widgets and theme engines to query it.

15 years agogtkstyleset.h: Add declaration for gtk_style_set_merge().
Carlos Garnacho [Thu, 4 Mar 2010 21:58:28 +0000 (22:58 +0100)]
gtkstyleset.h: Add declaration for gtk_style_set_merge().

15 years agoGtkStyleSet: Implement GtkStyleProvider.
Carlos Garnacho [Thu, 4 Mar 2010 21:51:56 +0000 (22:51 +0100)]
GtkStyleSet: Implement GtkStyleProvider.

As simple as it can get.

15 years agoAdd GtkStyleProvider, an interface to provide style details.
Carlos Garnacho [Thu, 4 Mar 2010 20:05:03 +0000 (21:05 +0100)]
Add GtkStyleProvider, an interface to provide style details.

The get_style() function isn't final yet, further parameters
should be added to query details based on the widget hierarchy,
name, etc.

15 years agoAdd GtkStyleSet, a store of style properties.
Carlos Garnacho [Thu, 4 Mar 2010 19:59:18 +0000 (20:59 +0100)]
Add GtkStyleSet, a store of style properties.

At the moment there's only basic API for adding,
removing and clearing a property. There's also
API to merge 2 GtkStyleSets.

15 years agoAdd GTK_STATE_LAST to mark the end of GtkState enum.
Carlos Garnacho [Thu, 4 Mar 2010 19:58:18 +0000 (20:58 +0100)]
Add GTK_STATE_LAST to mark the end of GtkState enum.

15 years agoUpdated Hebrew translation
Yaron Shahrabani [Sat, 4 Dec 2010 13:28:27 +0000 (15:28 +0200)]
Updated Hebrew translation

15 years agoAnother attempt to fix the gdk symbol list
Matthias Clasen [Sat, 4 Dec 2010 04:50:58 +0000 (23:50 -0500)]
Another attempt to fix the gdk symbol list

15 years agoUpdate sections
Matthias Clasen [Fri, 3 Dec 2010 20:41:37 +0000 (15:41 -0500)]
Update sections

15 years agoAPI: gdk: Rename GdkWindowObjectClass to GdkWindowClass
Benjamin Otte [Fri, 3 Dec 2010 15:14:31 +0000 (16:14 +0100)]
API: gdk: Rename GdkWindowObjectClass to GdkWindowClass

Be consistent in the naming of objects.

15 years agoAPI: Rename GdkWindowClass to GdkWindowWindowClass
Benjamin Otte [Fri, 3 Dec 2010 15:10:46 +0000 (16:10 +0100)]
API: Rename GdkWindowClass to GdkWindowWindowClass

We argued replacing GdkWindowClass with a input_only boolean, but this
is not doable in an API-stable way, so I decided against it.

15 years agoOne more forgotten symbol
Matthias Clasen [Fri, 3 Dec 2010 18:05:23 +0000 (13:05 -0500)]
One more forgotten symbol

15 years agoUpdate gdk symbol list
Matthias Clasen [Fri, 3 Dec 2010 18:04:42 +0000 (13:04 -0500)]
Update gdk symbol list

15 years agoUpdated Slovenian translation
Andrej Žnidaršič [Fri, 3 Dec 2010 17:10:08 +0000 (18:10 +0100)]
Updated Slovenian translation

15 years agoFix up parameter mismatches in the docs
Matthias Clasen [Fri, 3 Dec 2010 13:50:05 +0000 (08:50 -0500)]
Fix up parameter mismatches in the docs

And other minor gdk doc fixes.

15 years agoAdd annotation to gdk_screen_get_monitor_geometry
Matthias Clasen [Fri, 3 Dec 2010 13:21:48 +0000 (08:21 -0500)]
Add annotation to gdk_screen_get_monitor_geometry

Pointed out by William Jon McCann.

15 years agogtk: properly indent calls to gdk_threads_add_timeout()
Michael Natterer [Thu, 2 Dec 2010 22:01:12 +0000 (23:01 +0100)]
gtk: properly indent calls to gdk_threads_add_timeout()

15 years agodocs: Fix building with latest GDK changes
Bastien Nocera [Thu, 2 Dec 2010 21:01:05 +0000 (21:01 +0000)]
docs: Fix building with latest GDK changes

15 years agoDon't require a display for the color test
Matthias Clasen [Thu, 2 Dec 2010 20:58:57 +0000 (15:58 -0500)]
Don't require a display for the color test

Its not really needed, and the build bot doesn't have X...

15 years agogdk: Clean up Cairo code
Benjamin Otte [Thu, 2 Dec 2010 11:06:49 +0000 (12:06 +0100)]
gdk: Clean up Cairo code

Remove a bunch of code that is not required.

15 years agolabel: Clarify docs for gtk_label_get_layout()
Benjamin Otte [Thu, 2 Dec 2010 10:34:41 +0000 (11:34 +0100)]
label: Clarify docs for gtk_label_get_layout()

15 years agogdk: Replace direct calls of _gdk_event_func with _gdk_event_emit()
Benjamin Otte [Thu, 2 Dec 2010 09:59:37 +0000 (10:59 +0100)]
gdk: Replace direct calls of _gdk_event_func with _gdk_event_emit()

For now that function just calls the event func.

15 years agox11: Don't include gdkprivate.h in gdkx.h
Benjamin Otte [Tue, 30 Nov 2010 21:55:44 +0000 (22:55 +0100)]
x11: Don't include gdkprivate.h in gdkx.h

It's private, mkay?
And include it directly where we need it anyway.

15 years agogtk: Fix typos in comment
Benjamin Otte [Mon, 29 Nov 2010 16:51:59 +0000 (17:51 +0100)]
gtk: Fix typos in comment

15 years agogdk: Remove useless macros from gdkprivate.h
Benjamin Otte [Thu, 25 Nov 2010 14:33:25 +0000 (15:33 +0100)]
gdk: Remove useless macros from gdkprivate.h

15 years agogtk: Don't include private GDK headers
Benjamin Otte [Thu, 25 Nov 2010 14:33:01 +0000 (15:33 +0100)]
gtk: Don't include private GDK headers

Use the function that exists for this purpose instead.

15 years agogdk: Remove GDK_PANGO_UNITS_OVERFLOWS() from internal headers
Benjamin Otte [Thu, 25 Nov 2010 14:04:45 +0000 (15:04 +0100)]
gdk: Remove GDK_PANGO_UNITS_OVERFLOWS() from internal headers

It's unused.

15 years agogdk: Move window beeps into GdkWindowImpl
Benjamin Otte [Thu, 25 Nov 2010 11:28:08 +0000 (12:28 +0100)]
gdk: Move window beeps into GdkWindowImpl

One less magic function. Also refactored it to make it easier to
implement. It now returns TRUE if it beeped and FALSE if it failed to do
so. A default implementation exists that just returns FALSE for all the
backends that can't beep windows (read: everything but X11 with XKB -
and why on earth do keyboard libs implement beeping?)

15 years agogdk: Make get_shape and get_input_shape vfuncs
Benjamin Otte [Thu, 25 Nov 2010 11:17:11 +0000 (12:17 +0100)]
gdk: Make get_shape and get_input_shape vfuncs

Trying to get rid of all the _gdk_windowing_something() functions that
we expect backends to magically know about and instead put them in a
proper interface (mostly GdkWindowImplClass).

15 years agogdk: Remove GdkDrawable
Benjamin Otte [Wed, 24 Nov 2010 14:32:41 +0000 (15:32 +0100)]
gdk: Remove GdkDrawable

It's unused.

15 years agogdk: Remove remaining includes of gdkdrawable.h
Benjamin Otte [Wed, 24 Nov 2010 14:31:24 +0000 (15:31 +0100)]
gdk: Remove remaining includes of gdkdrawable.h

15 years agogdk: Make GdkWindowImpl inherit from GObject
Benjamin Otte [Wed, 24 Nov 2010 14:11:34 +0000 (15:11 +0100)]
gdk: Make GdkWindowImpl inherit from GObject